/**
 * mysql:对做后端必备
 * 
 * 
 */
/**
 * 一 安装mysql模块
 *   记得npm init
 *       npm i mysql
 * 
 */

/**
 * 二具体使用
 * 
 */

let mysql = require("mysql");

/**
 * 
 * 二.1 建立连接
 * 
 * 可参考 navicat的连接
 * 
 * 主机，端口，用户名，密码
 * 
 */
// 二.1.1 配置
let connection = mysql.createConnection({ host: 'localhost', port: '3306', user: 'root', password: 'root', database: 'demo' });

//二.1.2 连接
//connection.connect();

//二.2 操作 使用  query 方法 ，query 方法有三种 目前推荐大家使用 query(sql,callback)

//后端工作：crud create read update delete 


/**
 * 查询  select * from 表明 (如有调教可加 where +条件)
 * 
 *  callback(err,rows(数组,可循环取出),FieldPacket 描述性对象，不管他)
 * 
 */
// let sql='select * from person where age>30';
// connection.query(sql,function(err,rows){
//     if(err){
//         console.log(err.message);
//         return ;
//     }
//     for(let i in rows){
//         console.log(rows[i].name);
//     }
// });
// //关闭连接
// connection.end();

/**
 * 新增： INSERT into 表名(字段,字段,....) VALUES(字段对应的值....)
 * 
 * callback(err,OkPacket) OkPacket 插入完成对象，里面有个字段重要(insertId,这次写入数据的逐渐自增id)
 * 
 */
 connection.connect();
let names = ['node', 'js', 'php', 'python', 'java', 'c++', 'c', 'c#', 'ruby', 'css', 'sql'];
for (let i = 0; i < 1000; i++) {
    
    let randKey = Math.round(Math.random() * 9);
    let name = names[randKey];
    let sql = "INSERT into person(name,age) VALUES('"+name+"',"+Math.round(Math.random()*100)+")";
    //console.log(sql);
    connection.query(sql, function (err, OkPacket) {
        console.log(arguments);
    });
    connection.commit();
   
}
connection.end();

/**
 * 索引：非常重要，原理
 * 
 * 二叉树查找，比方说亦 100万条数据 可以把查询次数 降低到 log2 n 次查找
 * 
 * 
 * 
 * 
 * 
 */


/**
 * 作业：新建表，数据库名与表名自便，用mysql 模块实现curd(增删改查)
 * 
 * 
 * 
 * mvc session cookie 
 * 
 * 
 */









